求一个课程设计"数据包发送和接收程序的实现(Java或C++)"如果好在加分

来源:百度知道 编辑:UC知道 时间:2024/06/24 12:32:02
求一个课程设计"数据包发送和接收程序的实现(Java或C++)"----计算机网络课程设计
以下是要求:
1.已知参数:使用socket发送数据包。
2.设计要求: 以命令行方式运行,命令行格式为
SendPacket /TCP or UDP <DestIP> <StringToSend>或以用户界面方式指定发送相关参数,如TCP、UDP类型指定、目标IP地址指定等。
2.1分别发送数据内容为<StringToSend>的TCP和UDP数据包到达<DestIP>主机的1000端口和2000端口;
2.2发送源端口一律为3000;
2.3其他协议字段自行设置。
3. Java环境为MyEclipse, C++环境为Visual C++
急急急,还会加分的

这个问题不小啊,呵呵!
c++的实现是服务端,服务端代码:(我自己写的程序,按照做)
struct sockaddr_in sin;

memset(&sin,0,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=htonl(INADDR_ANY);
sin.sin_port=htons((u_short)rcvport);

type=SOCK_STREAM;

/* Allocate a socket */
s=socket(AF_INET,type,0);
if (s < 0)
{
printf("creat sock err!");
return -2;
}
if (bind(s, (struct sockaddr *)&sin, sizeof(sin))<0){

if(s>0)
{
closesocket(s);
s=-1;
}
if (type==SOCK_STREAM&&listen(s,5)<0)
{
printf("can't listen sock port!");
// close(s);
if(s>0)
{
closesocket(s);
s=-1;
}

return -5;
}

剩下的就简单了,while循环sccpet,然后客户端定时send,通讯成功。
如果还有不明白的,继续说。SOCK通讯千篇一律,没啥可讲的,看一遍代码就通了。